(define ^
  (native_function "
    Proc.new do |arguments, interpreter|
      if arguments.count != 2
        raise 'Power function takes 2 arguments'
      else
        arg1 = interpreter.evaluate(arguments[0])
        arg2 = interpreter.evaluate(arguments[1])
        arg1**arg2
      end
    end
  ")) 

(define power ^)
